package com.spider.demo7executorService;

import java.util.concurrent.*;

public class ExecutorServiceDemo1 {
    public static void main(String[] args) {
        //目标：创建线程池对象来使用
        //1.使用线程池的实现类ThreadPoolExecutor声明七个参数来创建线程池对象
        ExecutorService pool = new ThreadPoolExecutor(
                3,
                5,
                10,
                TimeUnit.SECONDS,//线程的存活时间单位
                new ArrayBlockingQueue<>(5),//阻塞队列
                Executors.defaultThreadFactory(),//线程工厂
                new ThreadPoolExecutor.AbortPolicy()//线程池的拒绝策略
        );

        //2.使用线程池对象来执行任务
        Runnable target =new MyRunnable();
        pool.execute(target);
        pool.execute(target);
        pool.execute(target);
        //3.关闭线程池对象:一般不关闭线程池。
        //pool.shutdown();//线程池对象不再接受新的任务，但是会执行完已经提交的任务。
        //pool.shutdownNow();//线程池对象不再接受新的任务，并且会取消正在执行的任务。


    }
}
